/************************************************************************/
/* UDimCalc (Ultimate Dimension Calculator)                             */
/* Erstellt: 26.05.2010                                                 */
/* Verantwortlicher Programmierer: Yannik Veeser, Heiko Metzger         */
/* Version 2.0                                                          */
/************************************************************************/


void circle() {
  // Variablen:
  char exe;

  cout<<"Geben sie bitte die gegebene Groesse an."<<endl;
  cin >> cmd;

  while ( cmd != "Beenden" )
  {
    // Ersten Buchstaben aus cmd lesen
    char* s = const_cast<char*>(cmd.c_str());
    exe=(char)s[0];
    switch ( exe )
    {
      case 'r':
      case 'R':
        // Mit gegebenem Radius berechnen
        circle_calc_from_r();
        get_cmd();
        break;

      case 'd':
      case 'D': 
        // Mit gegebenem Durchmesser berrechnen 
        circle_calc_from_d();
        get_cmd();
        break;

      case 'u':
      case 'U':
        // Mit gegebenem Umfang berechnen
        circle_calc_from_u();
        get_cmd();
        break;

      case 'f':
      case 'F':
        // Mit gegebener Flaeche berechnen
        circle_calc_from_A();
        get_cmd();
        break;

      default:
        // Im Falle eines ungueltigen Befehls
        cout<<"Bitte geben sie nur Flaeche, Radius, Umfangoder Durchmesser ein."<<endl;
        cin >> cmd;
        break;
    }
  }
}

void circle_calc_from_r() {
  double r, d, u, A, Pi=3.1415926536;
  cout<<"Geben sie nun den Radius des Kreises ein."<<endl;
  cin>>r;
  cout<<"Die verbleibenden Groessen werden berechnet."<<endl;
  cin.get();
  A=Pi*(r*r);
  u=2*Pi*r;
  d=2*r;
  cout << endl << "Durchmesser: " << d << "Umfang: " << u << endl << "Flaeche: " << A << endl;
}

bool circle_calc_from_d() {
  double r, d, u, A, Pi=3.1415926536;
  cout<<"Geben sie nun den Durchmesser des Kreises an."<<endl;
  cin>>d;
  cout<<"Die verbleibenden Groessen werden berechnet."<<endl;
  cin.get();
  r=d/2;
  u=2*Pi*r;
  A=Pi*(r*r);
  cout << "Radius: " << r << endl << "Umfang: " << u << endl << "Flaeche: " << A << endl;
  return true;
}

bool circle_calc_from_u() {
  double r, d, u, A, Pi = 3.1415926536;
  cout <<"Geben sie nun den Umfang des Kreises an."<<endl;
  cin>>u;
  cout <<"Die verbleibenden Groessen werden berechnet."<<endl;
  d = u/Pi;
  r = d/2;
  A = Pi*r*r;
  cout << "Radius: " << r << "Durchmesser: " << d << endl << "Flaeche: " << A << endl;
  return true;
}

bool circle_calc_from_A() {
  double r, d, u, A, Pi=3.1415926536;
  cout<<"Geben sie nun die Flaeche des Kreises an."<<endl;
  cin>>A;
  cout<<"Die verbleibenden Groessen werden berechnet."<<endl;
  cin.get();
  r=sqrt(A/Pi);
  u=2*Pi*r;
  d=r*2;
  cout << "Radius: " << r << endl << "Durchmesser: " << d << endl << "Umfang: " << u << endl;
  return true;
}
